/**
 * @Description: 用来封装filter
 * @Author: Yao
 * @Date: 2020-03-20 14:32:14
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2020-03-24 18:15:13
 * @module filter
 */

import moment from 'moment'
import _ from 'lodash'

/**
 * @description 时间格式化
 * @param {Date | Object | String | Number} val 时间对象，moment对象，或者任何能被moment初始化的值
 * @param {string} format 格式化字符串，详见moment文档
 * @returns {string}
 */
export function dateFormat(val, format = 'YYYY.MM.DD') {
  if (_.isNil(val)) return ''
  return moment(val).format(format)
}

/**
 * @description 字符串限制长度
 * @param {string} val 需要限制长度的字符串
 * @param {number} length 最长文字长度，默认20
 * @returns {string}
 */
export function ellipsis(val, length = 20) {
  if (_.isNil(val)) return ''
  if (val.length <= length) return val
  return val.substring(0, length) + '...'
}

/**
 * @description 验证不能包含字母
 * @param {string} val 需要验证的字符串
 * @returns {boolean}
 */
export function isNoWord(val) {
  return /^[^A-Za-z]*$/g.test(val)
}

/**
 * @description 验证email(邮箱)
 * @param {string} val 需要验证的字符串
 * @returns {boolean}
 */
export function isEmail(val) {
  return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/g.test(
    val
  )
}
/**
 * @description 验证手机号11位
 * @param {string} val 目前只能验证11位手机号码
 * @returns {boolean} 返回一个布尔值
 */
export function isPhone(val) {
  return /^1(3\d|4\d|5\d|6\d|7\d|8\d|9\d)\d{8}$/g.test(val)
}

/**
 * @description 金钱格式化，三位加逗号
 * @param { number } money 需要处理的数字
 * @returns {string} string
 */
export function moneyFormat(money) {
  return money.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
}

/**
 * @description 金钱格式化，三位加逗号
 * @param { number } moneyFen 需要处理的数字
 * @param { Boolean } thousands 是否显示千分位
 * @returns {Number}
 */
export function MoneyFen2yuan(moneyFen = 0, thousands = false) {
  let chineseYuan = Number((moneyFen / 100).toFixed(2))
  if (thousands) {
    chineseYuan = chineseYuan.toLocaleString()
  }
  console.log(chineseYuan)
  return chineseYuan
}
